Virtual machines are an increasingly common mechanism for conducting computing tasks. Virtual machines can allow multiple guest operating systems (guest OSes) to run within a single physical machine. Running computing tasks as virtual machines can allow improved utilization of computing resources and can facilitate the transfer of computing tasks between computers.
However, transferring a running virtual machine between two servers can be challenging. For example, the virtual machine may be constantly writing to system memory (e.g., RAM), which may complicate efforts to ensure that the virtual machine's state is properly copied to the new server. Furthermore, in some cases memory associated with a virtual machine can be modified by multiple entities.